Solid modeling is a term that refers to a set of techniques that can be used to create and store computer based representations of physical objects. A number of techniques have evolved over the years for providing computer-based representations of three-dimensional parts. One of these techniques is Boundary Representation (B-rep).
A Boundary Representation (B-rep) model of a mechanical part consists of a set of “faces,” “edges” and “vertices,” which are connected together to form a topological structure of the part. By using such a representation, it is possible to evaluate many properties of the part from its computer model. These include the mass, the volume, the moments of inertia and products of inertia. Additionally, such models enable computer-based analysis of stress and strains in the part under different loading conditions. B-rep based computer models can also be “cut” and examined in a manner similar to an actual part. For these reasons, a B-rep model of a part is known as a “solid” model. Other representations of solid models are also known in the art.
Software based on solid modeling is widely used by engineers to create models of parts that eventually have to be manufactured. Software such as SolidWorks (Solidworks Corporation), Pro/Engineer (Parametric Technology), I-DEAS (EDS), Mechanical Desktop (AutoDesk) are examples of solid modeling software.
Traditionally, work in feature technology has mainly focused in two areas: feature based design and feature recognition. In feature-based design, the basic unit is a feature that is defined as a region of design or manufacturing interest in a part. Most CAD systems provide a suite of standard features such as holes, ribs, extruded/revolved depressions, and protrusions for designing parts. The parts are designed as sequences of these features, and are represented as a design tree (or feature tree). However for many applications, the design tree may not provide the required information directly. For example, in manufacturing, protrusions in a feature tree need to be mapped to the complementary depressions while generating the tool path for machining. Further, the actual feature in the part may not correspond exactly to the feature in the design history due to feature interactions. For example, a blind hole could become a through hole due to the imposition of other features. In such situations, the only approach is to use feature recognition from the part model. In a few situations, one encounters models that do not have any feature information. This could result from modeling in non-feature based systems or from translation of data from one CAD system to another. In such cases, feature recognition is essential to extract the necessary information.
In the area of feature recognition, many techniques have been proposed and implemented. For a comprehensive review of feature recognition techniques, reference is made to Qiang Ji and Michael M. Marefat (Ji et al); “Machine Interpretation of CAD Data for Manufacturing Applications,” ACM Computing Surveys, Vol. 24, No. 3, September 1997, which is herein incorporated by reference. This paper provides a comprehensive description of all the well-known feature recognition techniques that have been used so far, and also points out the relative advantages and disadvantages.
Several of the techniques described in the Ji et al reference use graph-based approaches for recognizing features. In the graph-based approach, features are represented using an attributed face-adjacency graph. This graph is constructed by using faces as nodes and edges as arcs. In addition, attributes are added to nodes and arcs representing the topological and geometric characteristics of the corresponding faces and edges.
Feature recognition proceeds by matching the feature graph (as constructed above) to an appropriate subgraph of the graph representation of the part. However, a graph-based approach tends to be computationally expensive, especially in the presence of feature interactions, since it involves sub-graph matching problems. The efficiency is hence critically dependent on the attributes used in the graph that aid in pruning down the search during recognition. Further, many of the approaches proposed so far use feature hints that depend on specific feature types that may not be generally applicable.
Considering feature interactions in more detail, the problem of recognizing a feature is simple as long as the faces belonging to the feature do not interact with other features in the part. In such simple situations, the attributes of the faces of the recognized feature are identical to the corresponding faces of the pre-specified feature. However, in most real-world parts, features interact with other features in the model, and thereby disturb the face attributes in the part. The problem of feature recognition of interacting features is considered below.
Feature interactions result in many kinds of topology variations in the corresponding face-adjacency graph. Simple feature interactions involve splitting of edges and faces. In more complex situations, edges may get removed, thereby resulting in loss of arcs in the face-adjacency graph. FIGS. 15(a) to 15(c) show examples of split edges/faces, and loss of edges in a pocket feature due to feature interactions with a protrusion feature. In FIG. 15(a), the semi-cylindrical protrusion interacts with the pocket, thereby splitting an edge of the pocket. In FIG. 15(b), the bottom face of the pocket feature is split into two by the rib feature. In FIG. 15(c), an edge of the pocket is lost due to the corner rib feature.
Interactions can also occur along the boundary of a feature. For example, in FIG. 16(a), the pocket is placed over a rib feature, and has a different set of base faces from the pre-defined UDF. In FIG. 16(b), a slot and an open pocket interact with each other along the boundary. Such interactions are termed as concurrent interactions. A special type of boundary interaction is formed when faces of the feature merge with other faces of the part. Such interactions are termed as virtual interactions. FIGS. 17(a) and 17(b) show two examples of virtual interactions. In FIG. 17(a), the side face of the pocket merges with a face of a rib. In FIG. 17(b), one of the faces of a rib feature merges with another face of the part.
Several approaches have been proposed and implemented to resolve feature interaction (see the Ji et al reference). Many of these approaches use virtual links to recover the lost face adjacencies. However, when interactions get complex with a combination of protrusion and depression features, it is difficult and computationally expensive to produce all the possible virtual links in the part.
One popular approach used to resolve feature interactions is by using the feature suppression method. This method has also been described in the Ji et al reference. Feature suppression is briefly discussed below.
Feature interactions generally result in a parent/child relationship between features. The feature that came earlier is referred to as the parent feature, and the feature that was modeled later is called the child feature. Such interactions are resolved using feature suppression. Using this strategy, the features that do not have any child features get recognized first. These features have their attributes undisturbed initially, and hence pass successfully through the matcher. Other features that have interacting child features do not pass through the matcher, and are not recognized at this stage.
The recognized features are subsequently suppressed in order to simplify the model, and facilitate the recognition of their parent features. Feature suppression involves removing the faces of the feature from the part by extending/shrinking the neighboring faces of the feature. The face deletion functionality is offered by many geometry kernels. This process is performed recursively till all the features are recognized.